<?php

/**
 * 首页控制器
 * 提供获取环境配置信息等基础功能
 */

declare(strict_types=1);

namespace app\index\controller;

use think\facade\Env;
use think\facade\Config;
use think\facade\Db;
use app\common\service\Util;

/**
 * 首页控制器类
 * 负责提供获取环境配置信息等基础功能
 */
class Index
{
    /**
     * 获取环境配置信息
     * @return void
     */
    public function getEnvConfig()
    {
        // 获取基础环境信息
        $envInfo = [
            'app_name' => Config::get('app.app_name', 'Zhengyou Server'),
            'app_debug' => Env::get('app_debug', false),
            'app_env' => Env::get('app_env', 'production'),
            'version' => '1.0.0',
            'timezone' => date_default_timezone_get(),
            'current_time' => date('Y-m-d H:i:s')
        ];

        // 检查是否为调试模式，在调试模式下显示更多信息
        if (Env::get('app_debug', false)) {
            $envInfo['server_info'] = [
                'php_version' => PHP_VERSION,
                'server_software' => $_SERVER['SERVER_SOFTWARE'] ?? '',
                'document_root' => $_SERVER['DOCUMENT_ROOT'] ?? '',
                'request_time' => $_SERVER['REQUEST_TIME'] ?? time()
            ];
        }

        return Util::ajaxReturn(1, '获取成功', $envInfo);
    }

    /**
     * 获取ConstVar常量值
     * @param string $varName 常量名称
     * @return void
     */
    public function getConstVar(string $varName)
    {
        if (!property_exists('\app\common\ConstVar', $varName)) {
            return Util::ajaxReturn(0, '常量不存在', []);
        }

        return Util::ajaxReturn(1, '获取成功', \app\common\ConstVar::${$varName});
    }

    /**
     * 从app_config表获取后台设置
     * @return void
     */
    public function getAdminSetting()
    {
        $setting = Db::name('app_config')->select()->toArray();
        return Util::ajaxReturn(1, '获取成功', $setting);
    }
}
